package main

import (
	"flag"
	"fmt"
	"runtime"

	"github.com/sirupsen/logrus"
	"lxb.com/bot_mock/webserver/gotemplate"
	webServer "lxb.com/bot_mock/webserver/server"
)

func main() {
	configLogger()
	showWebServerExample()
	showTemplate()
}

func configLogger() {
	logrus.SetFormatter(&logrus.TextFormatter{
		FullTimestamp: false,
		CallerPrettyfier: func(f *runtime.Frame) (string, string) {
			// 你可以根据需要调整这部分代码来格式化函数名
			return "CobotHandler", fmt.Sprintf("%s_%d", f.Function, f.Line)
		},
	})
	logrus.SetReportCaller(true) // 启用调用者信息
}

func showWebServerExample() {

	// 基础的web server 示例
	// webServer.ServerExample()

	// 多 handler 示例
	// webServer.ServerWithMultipleHandler()

	// 通过实现接口的 struct 处理 handler
	// webServer.ServerWithImpletationServeHTTP()

	// webServer.GetTwitterStatusForGoogland()

	// webServer.StartFormSimpleServer()

	// webServer.StartFormSimpleWithSafePanic()

	// webServer.StartCalculateServer()

	// webServer.ShowHttpGetRequest()

	// wiki.StartWikiWithTemplate()
	flag.Parse()
	webServer.Show_ElaboratedWebServer()
}

/* template 示例 */
func showTemplate() {
	gotemplate.ShowTemplateExample()
}
